package cz.pecinovsky.english.pojj.adv_demo.empty_classes;
/* Kodovani UTF-8: Příliš žluťoučký kůň úpěl ďábelské ódy. */

import cz.pecinovsky.english.pojj.adv_framework.game_txt.IBag;
import cz.pecinovsky.english.pojj.adv_framework.game_txt.IGame;
import cz.pecinovsky.english.pojj.adv_framework.game_txt.IPlace;
import cz.pecinovsky.english.pojj.adv_framework.game_txt.ICommand;
import cz.pecinovsky.english.pojj.adv_framework.scenario.AScenarioManager;
import java.util.Collection;



/*******************************************************************************
 * Instance třídy {@code PrázdnáHra} mají na starosti logiku hry.
 * Jsou schopny akceptovat jednotlivé příkazy a poskytovat informace
 * o průběžném stavu hry a jejích součástech.
 *
 * @author    Rudolf PECINOVSKÝ
 * @version   0.00.000
 */
public class PrázdnáHra implements IGame
{
//== KONSTANTNÍ ATRIBUTY TŘÍDY =================================================
//== PROMĚNNÉ ATRIBUTY TŘÍDY ===================================================
//== STATICKÝ INICIALIZAČNÍ BLOK - STATICKÝ KONSTRUKTOR ========================
//== KONSTANTNÍ ATRIBUTY INSTANCÍ ==============================================
//== PROMĚNNÉ ATRIBUTY INSTANCÍ ================================================
//== PŘÍSTUPOVÉ METODY VLASTNOSTÍ TŘÍDY ========================================
//== OSTATNÍ NESOUKROMÉ METODY TŘÍDY ===========================================

//##############################################################################
//== KONSTRUKTORY A TOVÁRNÍ METODY =============================================

    /***************************************************************************
     *
     */
    public PrázdnáHra()
    {
    }



//== ABSTRAKTNÍ METODY =========================================================
//== PŘÍSTUPOVÉ METODY VLASTNOSTÍ INSTANCÍ =====================================

    /***************************************************************************
     * Vrátí jméno autora scénáře ve formátu "PŘÍJMENÍ Křestní",
     * tj. neprve příjmení psané velkými písmeny a za ním křestní jméno,
     * u nějž bude velké pouze první písmeno a ostatní písmena budou malá.
     *
     * @return Jméno autora/autorky programu ve tvaru PŘÍJMENÍ Křestní
     */
    @Override
    public String getAuthor()
    {
        //TODO Nedodělané
        throw new UnsupportedOperationException(
                                        "Metoda ještě není implementována");
    }


    /***************************************************************************
     * Vrátí x-name autora/autorky programu zapsané velkými písmeny.<p>
     * X-name má tvar <b>{@code XPPPK99}</b> nebo <b>{@code XPPPK999}</b>,
     * kde<br>
     * <ul>
     *   <li><b>{@code PPP}</b> zastupuje první tří písmena příjmení autora(ky)
     *      zapsaná velkými písmeny, </li>
     *   <li><b>{@code K}</b> zastupuje první písmeno křestního jména a </li>
     *   <li><b>{@code 99}</b>, resp. <b>{@code 999}</b> zastupují číslice
     *      přiřazené systémem, pomocí nichž se rozsliší studenti(ky)
     *      s předchozími znaky shodnými.
     * </ul>
     *
     * @return X-name autora/autorky programu
     */
    @Override
    public String getXNAME()
    {
        //TODO Nedodělané
        throw new UnsupportedOperationException(
                                        "Metoda ještě není implementována");
    }


    /***************************************************************************
     * Vrátí odkaz na aktuální prostor,
     * tj. na prostor, v němž se pravé nachází hráč.
     *
     * @return Požadovaný odkaz
     */
    @Override
    public IPlace getActualPlace()
    {
        //TODO Nedodělané
        throw new UnsupportedOperationException(
                                        "Metoda ještě není implementována");
    }


    /***************************************************************************
     * Vrátí odkaz na batoh, do nějž bude hráč ukládat sebrané objekty.
     *
     * @return Požadovaný odkaz
     */
    @Override
    public IBag getBag()
    {
        //TODO Nedodělané
        throw new UnsupportedOperationException(
                                        "Metoda ještě není implementována");
    }


    /***************************************************************************
     * Vrátí kolekci odkazů na jednotlivé prostory.
     *
     * @return Požadovaná kolekce
     */
    @Override
    public Collection<? extends IPlace> getAllPlaces()
    {
        //TODO Nedodělané
        throw new UnsupportedOperationException(
                                        "Metoda ještě není implementována");
    }


    /***************************************************************************
     * Vrátí kolekci všech příkazů použitelných ve hře.
     *
     * @return Požadovaná kolekce
     */
    @Override
    public Collection<? extends ICommand> getAllCommands()
    {
        //TODO Nedodělané
        throw new UnsupportedOperationException(
                                        "Metoda ještě není implementována");
    }


    /***************************************************************************
     * Vrátí informaci o tom, je-li hra již ukončena.
     *
     * @return Požadovaná informace
     */
    @Override
    public boolean isReady()
    {
        //TODO Nedodělané
        throw new UnsupportedOperationException(
                                        "Metoda ještě není implementována");
    }


    /***************************************************************************
     * Vrátí správce scénářů, které umožní prověřit funkčnost hry
     * a/nebo demonstrovat její průběh.
     *
     * @return Správce scénářů dané hry
     */
    @Override
    public AScenarioManager getScenarioManager()
    {
        //TODO Nedodělané
        throw new UnsupportedOperationException(
                                        "Metoda ještě není implementována");
    }



//== OSTATNÍ NESOUKROMÉ METODY INSTANCÍ ========================================

    /***************************************************************************
     * Ukončí celou hru a vrátí alokované prostředky.
     */
    @Override
    public void stop()
    {
        //TODO Nedodělané
        throw new UnsupportedOperationException(
                                        "Metoda ještě není implementována");
    }


    /***************************************************************************
     * Zpracuje zadaný příkaz a vrátí text zprávy pro uživatele.
     *
     * @param příkaz Zadávaný příkaz
     * @return Textová odpověď hry na zadaný příkaz
     */
    @Override
    public String executeCommand(String příkaz)
    {
        //TODO Nedodělané
        throw new UnsupportedOperationException(
                                        "Metoda ještě není implementována");
    }



//== SOUKROMÉ A POMOCNÉ METODY TŘÍDY ===========================================
//== SOUKROMÉ A POMOCNÉ METODY INSTANCÍ ========================================
//== INTERNÍ DATOVÉ TYPY =======================================================
//== TESTY A METODA MAIN =======================================================
//
//    /***************************************************************************
//     * Testovací metoda.
//     */
//    public static void test()
//    {
//        PrázdnáHra inst = new PrázdnáHra();
//    }
//    /** @param args Parametry příkazového řádku - nepoužívané. */
//    public static void main( String[] args )  {  test();  }
}
